The present invention relates to the field of data communications and processing, and more particularly to a data transmission system and method of operation.
Data transmission over a network using an Asynchronous Transfer Mode (ATM) protocol involves transmitting individual data cells that have an information field and a header field. The header field includes a virtual path identifier (VPI) and a virtual channel identifier (VCI) that, together, define a virtual channel connection (VCC) between two ATM endpoints. Data cells destined for the same virtual channel address (VCA) may exhibit an irregular recurrence pattern of transmission, as cells are transmitted according to their actual demand. As a result, data cells transmitted from a network interface to an ATM endpoint across an interface bus are often individually transmitted. This involves transmitting overhead associated with each data cell across the bus, resulting in an inefficient data transmission. Furthermore, the interface bus allocates bandwidth over which the data cells are transmitted based upon availability, so that if it is not used it is lost. Transmitting individual data cells fails to optimize the use of allocated bandwidth resulting in an inefficient data transmission across the interface bus.
In accordance with the present invention, a data transmission system and method of operation is provided which substantially eliminates or reduces disadvantages and problems associated with previous data transmission systems.
In accordance with one embodiment of the present invention, a system for transmitting a plurality of data cells from a remote to a host includes a number of homogeneous queues that store data cells having a same virtual channel address, and a heterogeneous queue that stores at least two data cells having different virtual channel addresses. A controller coupled to the queues and to the remote stores a particular data cell in a selected one of the queues in response to a particular virtual channel address of the data cell.
Another embodiment of the present invention is a method for transmitting a plurality of data cells from a remote to a host that includes storing a particular data cell having a particular virtual channel address in a selected homogeneous queue if the homogeneous queue stores a data cell having the particular virtual channel address. The method continues by storing the particular data cell having the particular virtual channel address in a selected homogeneous queue if the homogeneous queue stores no data cells and no other homogeneous queue stores a data cell having the particular virtual channel address. The method also includes storing the particular data cell having the particular virtual channel address in a heterogeneous queue if each of the homogeneous queues stores at least one data cell having a virtual channel address different from the particular virtual channel address.
Technical advantages of the present invention relate to a data transmission system having the ability to efficiently and economically transfer ATM data cells from an ATM network to an ATM endpoint. The data transmission system may be formed on an application specific integrated circuit (ASIC) that may be advantageously implemented on a network interface card associated with a particular ATM endpoint, or on any communication device associated with the ATM network, such as, for example, a router, a bridge, a gateway, or a switch.
More particular technical advantages include a data transmission system that prioritizes the transmission of ATM data cells from an ATM network to an ATM endpoint based on demand by dynamically allocating portions of memory associated with the ATM endpoint to queue data cells sharing a common and frequently recurring VCA at the ATM endpoint. Specifically, the system stores data cells in either homogeneous or heterogeneous queues of memory based upon the VCA associated with each data cell and the content and capacity of each queue. Simultaneously, the system alternates the transmission of data cells between the heterogeneous queue and a selected homogeneous queue.
This technique of dynamically allocating memory and alternately dequeuing data cells from the queues allows the system to prioritize the transmission of data cells associated with the most frequently recurring VCAs over the transmission of data cells associated with the least frequently recurring VCAs. Furthermore, the technique allows the system to transmit the data cells across an interface bus associated with the ATM endpoint in a burst rather than individually, and without requiring a significant allocation of memory to support the vast number of potential VCAs at the particular ATM endpoint. Transmitting data cells across the interface bus in a burst rather than individually reduces the amount of transmitted overhead information and optimizes the use of allocated bandwidth for the interface bus, resulting in a faster, more efficient transmission of data cells from the ATM network to the ATM endpoint.
Other technical advantages of the data transmission system include triggering the transmission of the queued data cells after a programmable time delay to accumulate data cells associated with any particular VCA in the homogeneous and heterogeneous queues for a pre-determined amount of time relating to the programmable time delay. Accumulating the data cells in the queues maximizes the use of allocated bandwidth on the bus by approaching the maximum number of data cells that may be transmitted in a burst.